# -*-  coding:utf-8 -*- 
# Author : lihongliang


# a3 = (i for i in range(5))
# print(a3)
#
# while True:
#     print(next(a3))


# 斐波拉契数列

def fib(num):
    n,a,b = 0,0,1
    while n < num :
        yield b  # 吧函数的执行过程冻结在这一步，并把b 的值得返回为外面的next（）
        a,b = b,a+b
        n += 1
    return 'done'

print(fib(15))  #函数内有yield， 函数名加()不执行，只是生成一个生成器对象

# print(next(f))
# for i in f:
#     print(i)